package com.hrpmar.service;

import com.hrpmar.controller.dto.*;
import com.hrpmar.controller.vo.Message;
import com.hrpmar.pojo.*;
import com.hrpmar.utils.Pager;

import javax.servlet.http.HttpServletRequest;
import java.util.List;
import java.util.Map;

/**
 * Created by c on 2017-11-15.
 */
public interface DruginfoService {

    /**
     * 分页查询
     * @param offset
     * @param limit
     * @param condition
     * @return
     */
    public Pager searchDruginfo(Integer offset, Integer limit, DruginfoDto condition);

    /**
     * 批量删除药品信息
     * @param drugNum
     */
    public Message batchDrugByNum(String[] drugNum);

    /**
     * 批量删除和药品有关的所有信息
     * @param drugNum
     * @return
     */
    public Message batchAllDrugInfoByNum(String[] drugNum);

    /**
     * 获取药品分类
     * @return
     */
    public List<Drugtype> getDrugType();

    /**
     * 添加药品信息
     * @param druginfo
     */
    public void addDrugInfo(Druginfo druginfo);

    /**
     * 修改药品信息
     * @param druginfo
     */
    public void updateDtugIngo(Druginfo druginfo);

    /**
     * 根据供应商编号获取供应商信息
     * @param ProNum
     * @return
     */
    public Provider getPro(String ProNum);

    /**
     * 分页查询采购主表信息
     * @param offset
     * @param limit
     * @param condition
     * @return
     */
    public Pager search(Integer offset, Integer limit, PurplanDto condition);

    /**
     * 根据采购编号获取采购明细信息
     * @param planNum
     * @return
     */
    public List<Purdetails> searchDetails(String planNum);

    /**
     * 添加session
     * @param planNum
     * @param req
     */
    public void addDsdels(String planNum,HttpServletRequest req);

    /**
     * 获取最新主表编号
     * @return
     */
    public String getNewDeNum();


    /**
     * 添加入库信息
     * @param proNum
     * @param planNum
     * @param dsNum
     * @param planDate
     * @param dsVerifier
     * @param req
     */
    public void addRukuInfo(String proNum,String planNum,String dsNum,String planDate,String dsVerifier,HttpServletRequest req);

    /**
     * 分页查询入库信息
     * @param offset
     * @param limit
     * @param condition
     * @return
     */
    public Pager searchRu(Integer offset, Integer limit, DrugstorageDto condition);

    /**
     * 根据入库编号获取入库主表信息
     * @param dsNum
     * @return
     */
    public Drugstorage getStoByNum(String dsNum);

    /**
     * 根据入库朱彪编号获取入库明细信息
     * @param dsNum
     * @return
     */
    public List<Dsdetails> getdelsByNum(String dsNum);

    /**
     * 分页查询出库信息
     * @param offset
     * @param limit
     * @param condition
     * @return
     */
    public Pager searchChu(Integer offset, Integer limit, OutstorageDto condition);

    /**
     * 根据出库编号获取出库主表信息
     * @param osNum
     * @return
     */
    public Outstorage searchOutstorage(String osNum);

    /**
     * 根据出库编号获取出库明细信息
     * @param osNum
     * @return
     */
    public List<Osdetails> searchOsdetails(String osNum);

    /**
     * 获取全部医护人员
     * @return
     */
    public List<Medicper> getAllMed();

    /**
     * 根据医护人员编号获取该人员信息
     * @param perId
     * @return
     */
    public Medicper getMedById(Integer perId);

    /**
     * 获取最新出库编号
     * @return
     */
    public String getNewOutNum();

    /**
     * 根据药品编号获取该药品批号
     * @param drugNum
     * @return
     */
    public List<Drugstock> searchStoByDrugNum(String drugNum);

    /**
     * 根据库存药品批号获取该药品信息
     * @param stoLotnum
     * @return
     */
    public Drugstock getStoBystoLotnum(String stoLotnum,String drugNum);

    /**
     * 把出库明细信息添加到map
     * @param osd
     */
    public Map<Integer,OsdetailsDto> setOutDelsInMap(OsdetailsDto osd, HttpServletRequest req);

    /**
     * 删除map信息
     * @param keyId
     * @param req
     * @return
     */
    public void delOutDels(Integer keyId,HttpServletRequest req);

    /**
     *
     * @param osdNum
     * @param req
     */
    public void updateOutDels(Integer osdNum,Integer keyId,HttpServletRequest req);

    /**
     * 添加出库信息
     * @param outstorage
     * @param req
     */
    public void addOutstoAndDsdeltails(Outstorage outstorage,HttpServletRequest req);

}
